package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.UserBean;

import java.util.List;

public interface IUserService {
    /**
     * 输入：账号、密码
     * 处理：
     * 1、根据账号和密码查询用户，如果查询失败，返回null，查询成功，返回登陆用户对象。
     * 2、如果登陆成功，添加登陆日志记录，同时在session中绑定登陆用户，在登陆用户中，需要绑定权限集合
     * 输出：登陆用户/null
     * 用户信息：用户编号、用户名、密码、真实姓名、权限集合
     * @param userName 用户名
     * @param password 密码
     * @return 登陆用户/null
     */
    UserBean login(String userName,String password);
    /**
     * 分页动态查询用户信息
     * 输入：页码，用户名
     * 处理：分页动态查询用户信息
     * 输出：分页对象
     * 用户信息：用户编号，用户名，密码，真实姓名
     * @param pageNum
     * @param userRealName
     * @return
     */
    public IPage<UserBean> cutFindByItem(Integer pageNum, String userRealName);
    /**
     * 添加用户
     * 输入：用户名，真实姓名，角色id集合
     * 处理：添加用户， 同时添加该用户拥有的角色
     * 输出：ok
     */
    public void addUser(UserBean userBean, List<Integer> roleIdList);
    /**
     * 删除用户
     * 输入：用户id
     * 处理：删除用户，同时删除用户拥有的角色记录
     * 输出：ok
     */
    public void delUser(Integer userId);
    /**
     * 查看用户角色
     * 输入：用户Id
     * 处理：根据用户id，查询用户信息，并查询用户拥有角色集合
     * 输出：用户对象
     * 用户信息：用户ID，用户名，真实姓名，密码、角色集合
     * 角色信息：角色ID，角色名称
     * @return
     */
    public UserBean findRole(Integer userId);
    /**
     * 根据用户id修改密码
     * 输入：用户id，新密码
     * 处理：
     * 根据用户id修改新密码
     * 输出：成功：ok    失败：no
     * @param newPassword
     * @param userId
     * @return
     */
    public void updatePassword(Integer userId,String newPassword);
}
